home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Headers / g++ / SmplHist.h < prev    next >
C/C++ Source or Header  |  1995-02-06  |  2KB  |  74 lines

  1. // This may look like C code, but it is really -*- C++ -*-
  2. /* 
  3. Copyright (C) 1988 Free Software Foundation
  4.     written by Dirk Grunwald (grunwald@cs.uiuc.edu)
  5.  
  6. This file is part of the GNU C++ Library.  This library is free
  7. software; you can redistribute it and/or modify it under the terms of
  8. the GNU Library General Public License as published by the Free
  9. Software Foundation; either version 2 of the License, or (at your
  10. option) any later version.  This library is distributed in the hope
  11. that it will be useful, but WITHOUT ANY WARRANTY; without even the
  12. implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  13. PURPOSE.  See the GNU Library General Public License for more details.
  14. You should have received a copy of the GNU Library General Public
  15. License along with this library; if not, write to the Free Software
  16. Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  17. */
  18.  
  19. #ifndef SampleHistogram_h
  20. #ifdef __GNUG__
  21. #pragma interface
  22. #pragma cplusplus
  23. #endif
  24. #define SampleHistogram_h 1
  25.  
  26. #include <iostream.h>
  27. #include <SmplStat.h>
  28.  
  29. extern const int SampleHistogramMinimum;
  30. extern const int SampleHistogramMaximum;
  31.  
  32. class SampleHistogram : public SampleStatistic 
  33. {
  34. protected:
  35.     short howManyBuckets;
  36.     int *bucketCount;
  37.     double *bucketLimit;
  38.  
  39. public:
  40.     
  41.     SampleHistogram(double low, double hi, double bucketWidth = -1.0);
  42.  
  43.     ~SampleHistogram();
  44.  
  45.     virtual void reset();
  46.     virtual void operator+=(double);
  47.  
  48.     int similarSamples(double);
  49.  
  50.     int buckets();
  51.  
  52.     double bucketThreshold(int i);
  53.     int inBucket(int i);
  54.     void printBuckets(ostream&);
  55.  
  56. };
  57.  
  58.  
  59. inline int SampleHistogram:: buckets() { return(howManyBuckets); };
  60.  
  61. inline double SampleHistogram:: bucketThreshold(int i) {
  62.     if (i < 0 || i >= howManyBuckets)
  63.         error("invalid bucket access");
  64.     return(bucketLimit[i]);
  65. }
  66.  
  67. inline int SampleHistogram:: inBucket(int i) {
  68.     if (i < 0 || i >= howManyBuckets)
  69.         error("invalid bucket access");
  70.     return(bucketCount[i]);
  71. }
  72.  
  73. #endif
  74.